// 菜单管理
Ext.extend(CQCIS.module, {
    init: function() {
    	var listMeta = [{
			field: 'menuId',
            desc: '菜单ID',
            width: 50
		}, {
		    field: 'menuType',
            desc: '菜单类型',
            renderer: function(value) {
            	switch(value) {
            		case '1':
            		return '系统菜单';
            		case '2':
                    return '网站菜单';
            	}
            	return value;
            },
            width: 100
		}, {
            field: 'menuName',
            desc: '菜单名字',
            width: 100
        }, {
            field: 'menuDesc',
            desc: '菜单描述',
            width: 100
        }, {
            field: 'menuUrl',
            desc: '菜单连接路径',
            width: 130
        }, {
            field: 'menuIdend',
            desc: '是否末端节点',
            renderer: function(value) {
                switch(value) {
                    case '1':
                    return '是';
                    case '0':
                    return '否';
                }
                
                return '否';
            },
            width: 80
        }, {
            field: 'menuUpId',
            desc: '上级菜单',
            renderer: function(value) {
            	if (value == '10000') {
            		return '根菜单';
            	}
            	
            	menuDwr.getMenu(value, {
                    callback: function(menu) {
                        if (menu) {
                            value = menu.menuName;
                        }
                        
                    },
                    async: false
                });
                
                return value;
            },
            width: 100
        }, {
            field: 'createTime',
            desc: '菜单创建时间',
            type: 'time',
            width: 100
        }, {
            field: 'updateTime',
            desc: '菜单修改时间',
            type: 'time',
            width: 100
        }, {
            field: 'sortId',
            desc: '菜单序号',
            type: 'int',
            width: 100
        }, {
            field: 'state',
            desc: '状态',
            renderer: function(value) {
            	switch(value) {
            		case '1':
            		return "有效";
            		case '0':
            		return "无效";
            	}
            	
            	return value;
            },
            width: 100
        }];
        
        // 增加，修改页面列表
        var menuMeta = [{
            name: 'menuId',
            fieldLabel: 'ID',
            xtype: 'hidden'
        }, {
            name: 'menuType',
            fieldLabel: '菜单类型',
            allowBlank: false,
            store: [['1', '系统菜单'], ['2', '网站菜单']],
            triggerAction: 'all',
            editable: false,
            xtype: 'combo',
            value: '1'
        }, {
            name: 'menuName',
            fieldLabel: '菜单名字',
            width: 100
        }, {
            name: 'menuDesc',
            fieldLabel: '菜单描述',
            width: 100
        }, {
            name: 'menuUrl',
            fieldLabel: '菜单连接路径',
            allowBlank: false
        }, {
            name: 'menuIdend',
            fieldLabel: '是否末端节点',
            allowBlank: false,
            store: [['1', '是'], ['0', '否']],
            triggerAction: 'all',
            editable: false,
            xtype: 'combo'
        }, {
            name: 'menuUpId',
            fieldLabel: '上级菜单',
            allowBlank: false,
            fields: ['menuId', 'menuName'],
            valueField: 'menuId',
            displayField: 'menuName',
            ds: {
                call: menuDwr.getAllNotEndMenus
            },
            xtype: 'rcombo'
        }, {
           name: 'state',
            fieldLabel: '状态',
            store: [['1', '有效'], ['0', '无效']],
            triggerAction: 'all',
            //mode: 'local',
            editable: false,
            xtype: 'combo',
            value: '1'
        }, {
           name: 'createTime',
            fieldLabel: '菜单创建时间',
            type: 'date',
            xtype: 'hidden'
        }, {
           name: 'updateTime',
            fieldLabel: '菜单修改时间',
            type: 'date',
            xtype: 'hidden'
        }, {
        	name: 'sortId',
        	fieldLabel: '菜单序号',
        	type: 'int',
        	width: 100
        }];
        
        // 组织信息窗口
        var menuWin = new CQCIS.Window({
            id: 'sm_menu_win',
            title: '组织信息',
            height: 300,
            width: 380,
            items: new CQCIS.form.DWRForm({
                dwr: {
                    save: menuDwr.createMenu,
                    load: menuDwr.getMenu,
                    update: menuDwr.updateMenu
                },
                labelWidth: 100,
                items: menuMeta,
                afterSubmit: function() {
                    grid.refresh();
                }
            })
        });
        
        // 工具栏增加按钮
        var addBtn = new Ext.Toolbar.Button({
            text: '增加',
            iconCls: 'btn_insert',
            handler: function() {
                menuWin.show();
            }
        });
        
        // 工具栏修改按钮
        var editBtn = new Ext.Toolbar.Button({
            text: '修改',
            iconCls: 'btn_modify',
            handler: function() {
                var menu = grid.getSelectedRow();
                if (menu) {
                    menuWin.load(menu.menuId);
                } else {
                    CQCIS.msg('请选择要修改的记录!');
                }
            }
        });
        
        // 工具栏删除按钮
        var delBtn = new Ext.Toolbar.Button({
            text: '删除',
            iconCls: 'btn_config',
            handler: function() {
                var menu = grid.getSelectedRow();
                if (menu) {
                    Ext.Msg.confirm('操作提示', '确定要删除选择的菜单 "' + menu.menuName + '"，菜单删除后将无法恢复?', function(param) {
                        if (param == 'yes') {
                            menuDwr.deleteMenu(menu.menuId, function() {
                                CQCIS.msg("选定的记录操作成功!");
                                grid.refresh();
                            });
                        }
                    });
                } else {
                    CQCIS.msg("请选择要操作的记录!");
                }
            }
        });
        
        // 员工信息grid
        var grid = new CQCIS.grid.PageGrid({
            id: 'sm_menu_grid',
            firstColumn: 'radio',
            dwr: {
                call: menuDwr.pageMenus
            },
            metas: listMeta,
            tbar: [addBtn, editBtn, delBtn],
            initload: true,
            bbar: 'true'
        });
        
        // 定义关联销毁对象数组，避免内存泄漏
        this.main.associatedComp = [menuWin];
        // 定义页面主元素
        this.main.add(grid);
        // 布局更新
        this.main.doLayout();
    }
});